import { reactive, computed, toRef } from 'vue'

const defaultConfig = { optType: 'add', show: false, width: '520px', titles: { 'add': '新增', 'edit': '修改' }}
const usePageModal = (config = {}) => {
    // 参数merge 以传入的为准
    config = Object.assign(defaultConfig, config)
    const modalData = reactive({
        // show: config.show, // 控制弹窗显示
        optType: config.optType || 'add', // 弹窗打开类型
        curForm: '', // 编辑时回填的数据
        width: config.width, // 弹窗的宽度
    })
    // 导出的数据
    const title = computed(() => {
        return config.titles[modalData.optType] || '--' 
    })
    // 弹窗显示方法
    const showModal = (optType = config.optType, curForm = '') => {
        Object.assign(modalData, { show: true, optType, curForm })
    }
    return [modalData, showModal]
}

export default usePageModal